// defines.txt exactly as it appears in the AGI Studio Template Game

// **********************************
// Interpreter variables, flags, etc.
// **********************************

// vars
#define room_no                      v0
#define prev_room_no                 v1
#define ego_edge_code                v2
#define score                        v3
#define object_touching_edge         v4
#define object_edge_code             v5
#define ego_dir                      v6
#define max_score                    v7
#define free_memory                  v8
#define unknown_word_no              v9
#define cycle_delay                  v10
#define clock_seconds                v11
#define clock_minutes                v12
#define clock_hours                  v13
#define clock_days                   v14
#define joystick_sensitivity         v15
#define ego_view_no                  v16
#define error_code                   v17
#define error_information            v18
#define key_pressed                  v19
#define computer_type                v20
#define window_close_time            v21
#define sound_type                   v22
#define sound_volume                 v23


// not sure what v24 is
#define selected_inventory_item      v25
#define video_mode                   v26


// flags
#define ego_on_water                 f0
#define ego_hidden                   f1
#define input_received               f2
#define ego_touching_signal_line     f3
#define input_parsed                 f4
#define new_room                     f5
#define game_restarted               f6
#define script_buffer_blocked        f7
#define joystick_sensitivity_set     f8
#define sound_on                     f9
#define trace_enabled                f10
#define first_logic0_cycle           f11
#define game_restored                f12
#define inventory_select_enabled     f13
#define menu_enabled                 f14
#define windows_remain               f15
#define stop_sound                   f16


// strings
#define prompt_char                  s0


// edge codes
#define no_edge                      0
#define horizon_edge                 1
#define right_edge                   2
#define bottom_edge                  3
#define left_edge                    4


// directions
#define stopped                      0
#define up                           1
#define upright                      2
#define right                        3
#define downright                    4
#define down                         5
#define downleft                     6
#define left                         7
#define upleft                       8


// video modes
#define CGA                          0
#define RGB                          1
#define Hercules                     2
#define EGA                          3
#define VGA                          4

// ***********
// Controllers
// ***********


// AGI Menu
#define menu_about                   c21
#define menu_help                    c2
#define menu_color                   c101


// File menu
#define menu_save                    c3
#define menu_restore                 c5
#define menu_fileseparator           c20
#define menu_restart                 c7
#define menu_quit                    c1


// Action menu
#define menu_seeobject               c22
#define menu_inventory               c10
#define menu_debughelp               c108


// Special menu
#define menu_soundonoff              c16
#define menu_clock                   c12
#define menu_joystick                c15
#define menu_pause                   c16


// Speed menu
#define menu_normalspeed             c24
#define menu_slowspeed               c25
#define menu_fastspeed               c23
#define menu_fastestspeed            c28


// Keys
#define key_activate_menu            c19
#define key_decrease_volume          c26
#define key_increase_volume          c27
#define key_clearinputline           c17
#define key_echoline                 c9
#define key_seeobject                c4
#define key_debug                    c14
#define key_joystick                 c100
#define key_ego                      c102
#define key_priority                 c103
#define key_memory                   c104
#define key_object                   c105
#define key_coords                   c106
#define menu_gimme                   c107



// **************************
// Other variables,flag,etc.
//***************************


#define debug_active                 f32
#define clock_active                 f34
#define old_clock_seconds            v37
#define ego                          o0
#define mail                         o1
#define fish                         o2
#define sword                        o3
#define key                          o4
#define water1                       o5
#define water2                       o7
#define girl                         o6
#define apple                        o8
#define town                         o9
#define new_ego_x                    v30
#define new_ego_y                    v31
#define old_ego_x                    v32
#define old_ego_dir                  v145
#define old_ego_y                    v33
#define old_ego_dir                  v34
#define never_animate_ego            f30
#define always_animate_ego           f31
#define death_type                   v35
#define thankyou_timer               v36
#define coords_shown                 f35
#define num_invobjects               25

// This is the number of inventory objects in the game. It is used by the debug

// mode when the player types "gimme gimme". Remember to change this when you

// add more objects.

#define disable_game_functions       f33

// Set the flag disable_game_functions to stop the player from using things

// like the menu, inventory, and saving/restoring games. This is useful in

// places like the introduction when you don't want these things done. Scenes

// like this could test for have.key (i.e. when the user has pressed a key) to

// be bypassed.

// NOTE: disable_game_functions is currently set before the intro is run.

// Remember to make sure it is reset after the intro (this should be done before

// entering the first room).

#define game_version_message         "(Patrick's Quest Version 1.00)"
#define game_about_message           "(This game rocks you debugger!)"